//
//  GroupDelegate.h
//  TcpTest_Server
//
//  Created by arvintan on 12-7-28.
//  Copyright (c) 2012年 tencent. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "PacketDispatchDelegate.h"

#define COLUNM_OF_GROUPMEMBERID     0
#define COLUMN_OF_GROUPMEMBERNAME   1
#define COLUMN_OF_GROUPMEMBERIMAGE  3 


#define COLUMN_OF_GROUPID           0
#define COLUMN_OF_GROUPNAME         1
#define COLUMN_OF_GROUPNUM          3
#define COLUMN_OF_GROUPIMAGE        5


#define COLUMN_OF_USERID            0
#define COLUMN_OF_USERNAME          1
#define COLUMN_OF_USERIMAGE         3

#define GROUP_CREATE_NO_ERROR       0
#define GROUP_CREATE_SQL_ERROR      1
#define GROUP_REQUEST_NO_ERROR      0
#define GROUP_REQUEST_SQL_ERROR     1


#define GROUP_MEMBERLIST_NO_ERROR   0
#define GROUP_MEMBERLIST_SQL_ERROR  1
//#define COLUMN_OF_GROUPPHOTO       



#define BUDDY_STATUS_ONLINE     0x0000  // 好友状态：在线
#define BUDDY_STATUS_OFFLINE    0x0001  // 好友状态：离线

#pragma pack(1)
typedef struct
{
    NSUInteger userID;               // 用户id
    NSUInteger nameLen;              // 讨论组名字
    NSUInteger headImageLen;         // 群头像长度
    NSUInteger count;                // 讨论组人数
    //... 要发的 UserId 直接在这儿进行发送
} CLUSTERCREATEHRD;
#pragma pack()


#pragma pack(1)
typedef struct
{
    //NSUInteger error;
    NSUInteger groupID;               // 讨论组ID
    NSUInteger nameLen;               // 群名称长度
    NSUInteger headImageLen;         // 群头像长度
} CLUSTERCREATEREPLYHRD;
#pragma pack()

#pragma pack(1)
typedef struct
{
    NSInteger error;                // 错误类型，若无错误，则此字段是 ERR_NO_ERROR(0x0000)，否则后面的字段没有解析的必要了
    NSInteger count;                // 群数目
    NSInteger groupIDLen;           // groupId 占用的字节数
    NSInteger groupNameLen;         // groupName 占用的字节数
    NSInteger groupImageLen;        // groupImage 占用的字节数
    //... 要发的 groupID,groupName,groupImage 直接接在这儿进行发送，先是groupID,然后时groupName和groupImage
} CLUSTERLISTREPLYHRD;
#pragma pack()

#pragma pack(1)
// 在之前先发送groupID
typedef struct
{
    NSUInteger error;
    NSUInteger count;
    NSUInteger memberIDLen;
    NSUInteger memberNameLen;
    NSUInteger memberImageLen;
    NSUInteger memberStatusLen;
    NSUInteger memberListenPortLen; 
    NSUInteger memberIpLen;        
}CLUSTERMEMBERLISTREPLYHRD;
#pragma pack()


@interface GroupPacketCenter : NSObject<PacketDispatchDelegate>

@end
